#pragma once
#include "IHardware.HDD.h"
#include <QObject>


namespace NOpenHardwareMonitor {

namespace NHardware {


class CHDDPrivate;
class CHardware;


class CHDD
	: public QObject
	, public IHDD
{
	Q_OBJECT


public:
	CHDD(CHardware* Hardware, const QString& HDDIdentifier);
	~CHDD();


public:
	virtual void Release() override;


public:
	virtual QString GetSerialNumber() const override;
	virtual QString GetModelNumber() const override;
	virtual QString GetFirmwareNumber() const override;
	virtual QString GetIdentifier() const override;


private:
	QScopedPointer<CHDDPrivate> d_ptr;
	Q_DECLARE_PRIVATE(CHDD)
};


}}

